package com.ruben.strategies;

import java.util.Collections;

/**
 * 登录应用
 *
 * @author <achao1441470436@gmail.com>
 * @since 2021/10/16 18:42
 */
public class LoginApplication {

    public static void main(String[] args) {
        stupidWay();
        userStrategy();
    }

    private static void stupidWay() {
        System.out.println("用户使用微信登录");

        // 业务代码
        System.out.println("校验参数合法性...");
        System.out.println("微信登录中...");
        String token = "Token from wechat!";
        // 业务代码结束
        System.out.println("用户登录完毕，token为：" + token);

        System.out.println("用户绑定QQ，切换策略，使用QQ登录");

        // 业务代码
        System.out.println("校验参数合法性...");
        System.out.println("QQ登录中...");
        token = "Token from qq!";
        // 业务代码结束
        System.out.println("用户登录完毕，token为：" + token);
    }


    private static void userStrategy() {
        System.out.println("用户使用微信登录");
        LoginExecutor loginExecutor = new LoginExecutor(new WechatLoginStrategy());
        String token = loginExecutor.executeLogin(Collections.emptyMap());
        System.out.println("用户登录完毕，token为：" + token);
        System.out.println("用户绑定QQ，切换策略，使用QQ登录");
        loginExecutor.setLoginStrategy(new QqLoginStrategy());
        token = loginExecutor.executeLogin(Collections.emptyMap());
        System.out.println("用户登录完毕，token为：" + token);
    }
}
